package com.tarena.emqx.demo;

import org.eclipse.paho.client.mqttv3.MqttClient;
import org.eclipse.paho.client.mqttv3.MqttException;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

import java.nio.charset.StandardCharsets;

@SpringBootTest
public class EmqxTestApplication {
    @Autowired
    private MqttClient mqttClient;

    //测试使用客户端发送消息到指定的主题
    @Test
    public void sendMessage() throws MqttException {
        String topic="/emqx/first/topic";
        String msg="hello emqx i am xiao";
        /**
         * topic: 发送消息目的地 emqx中的某个主题名称 emqx如果有就会使用 如果没有就会创建
         * msg: byte[] 发送消息的消息体
         * qos: 0 1 2三个值 三个消息通信 网络质量级别 0 最低 1 中等 2 最高 emqx会根据数字选择通信连接的复杂度
         * 数字越高 连接创建复杂度就搞 对网络环境要求就高,如果质量差 反而选择2 更容易断开
         */
        mqttClient.publish(
                topic,msg.getBytes(StandardCharsets.UTF_8),2,true);
    }
}
